/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package issr.boundary;

import com.vaadin.ui.Panel;
import com.vaadin.ui.VerticalLayout;
import issr.boundary.vaadin.AbstractView;
import issr.boundary.vaadin.MainApplication;
import issr.controller.ControlloreHome;
import issr.controller.ControlloreHome_Service;
import issr.controller.Utente;
import issr.misc.Labels;
import java.util.HashMap;

/**
 *
 * @author Soulreaver
 */
public class PannelloHome extends AbstractView {

    private ControlloreHome_Service cls;
    private ControlloreHome controllore;
    private final VerticalLayout layout;
    HashMap<String, Class> mappingViewClass;

    public PannelloHome() {
        mappingViewClass = new HashMap<String, Class>();
        mappingViewClass.put(Labels.DIPENDENTI_ORGANIZZAZIONE, PannelloGestioneDipendenteAmministratoreG.class);
        mappingViewClass.put(Labels.CREA_DIPENDENTE, PannelloCreazioneDipendenteAmministratoreG.class);
        mappingViewClass.put(Labels.CREA_DIPENDENTE_PV, PannelloCreazioneDipendenteGestorePV.class);
        mappingViewClass.put(Labels.ASSEGNA_DIPENDENTE, PannelloAssegnazioneDipendente.class);
        mappingViewClass.put(Labels.PUNTI_VENDITA, PannelloGestionePuntoVendita.class);
        mappingViewClass.put(Labels.CREA_PUNTO_VENDITA, PannelloCreazionePuntoVendita.class);
        mappingViewClass.put(Labels.LOG, PannelloLogAmministratoreG.class);
        mappingViewClass.put(Labels.LOG_PV, PannelloLogGestorePV.class);
        mappingViewClass.put(Labels.DIPENDENTI, PannelloGestioneDipendenteGestorePV.class);
        mappingViewClass.put(Labels.INSERIMENTO_TIPO_PRODOTTO, PannelloInserimentoTipoProdotto.class);
        mappingViewClass.put(Labels.INSERIMENTO_LOTTO, PannelloInserimentoLotto.class);
        mappingViewClass.put(Labels.GENERAZIONE_PASSWORD, PannelloGenerazionePassword.class);
        mappingViewClass.put(Labels.EROGAZIONE_PRODOTTI, PannelloErogazioneProdotti.class);
        
        cls = new ControlloreHome_Service();
        controllore = cls.getControlloreHomePort();
        layout = new VerticalLayout();
        setCompositionRoot(layout);
        layout.setMargin(true);
        layout.setHeight("100%");

        layout.setStyleName("view");

        Panel panel = new Panel("Home");
        panel.setHeight("100%");
        layout.addComponent(panel);
    }

    @Override
    protected void close() throws Exception {
    }

    @Override
    protected void open() throws Exception {
        Utente user = (Utente) MainApplication.getProject().getUser();
        Object[] views = controllore.richiediOperazioniDisponibili(user).toArray();
        if (views != null) {
            for (Object view : views) {

                MainApplication.getProject().getHandler().getViewList().put(
                        (String) view,
                        (AbstractView) mappingViewClass.get((String) view).newInstance());
            }
            MainApplication.getProject().getHandler().getMenu().populateMenu(views);
        }
    }
}
